﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

using Gra.Seguros.Servicio.Bl;
using Gra.Seguros.Servicio.Be;
using Gra.Seguros.Servicio.Ws.Be;


namespace Gra.Seguros.Servicio.Ws
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "RecepcionDocumento" en el código, en svc y en el archivo de configuración a la vez.
    public class RecepcionDocumento : IRecepcionDocumento
    {

        public List<DocumentoWs> listarDocumento()
        {
            DocumentoBl obj = new DocumentoBl();
            List<DocumentoBe> lst = new List<DocumentoBe>();
            lst = obj.listar();
            var lQuery = from c in lst
                         select new DocumentoWs
                         {
                             cDocumento = c.cDocumento,
                             dDocumento = c.dDocumento,                             
                         };
            return lQuery.ToList();
        }


        public List<AseguradoraWs> listarAseguradora()
        {
            AseguradoraBl obj = new AseguradoraBl();
            List<AseguradoraBe> lst = new List<AseguradoraBe>();
            lst = obj.listar();
            var lQuery = from c in lst
                         select new AseguradoraWs
                         {
                             cAseguradora = c.cAseguradora,
                             dAseguradora = c.dAseguradora,
                         };
            return lQuery.ToList();
        }



        public List<RecepcionDocumentoWs> listarRecepcionDocumento(string _cRecepcionDocumento, string _cAseguradora, string _cDocumento)
        {
            RecepcionDocumentoBl obj = new RecepcionDocumentoBl();
            List<RecepcionDocumentoBe> lst = new List<RecepcionDocumentoBe>();
            lst = obj.listar(Convert.ToInt32(_cRecepcionDocumento), Convert.ToInt32(_cAseguradora), Convert.ToInt32(_cDocumento));
            var lQuery = from c in lst
                         select new RecepcionDocumentoWs
                         {
                             cRecepcionDocumento = c.cRecepcionDocumento,
                             dDocumento = c.Documento.dDocumento,
                             fRecepcionDocumento = c.fRecepcionDocumento
                             
                             //cCotizacion = c.cCotizacion,
                             //cAseguradora = c.Aseguradora.dAseguradora
                             //fCreacion = c.fCreacion,
                             //cCliente = c.Cliente.cCliente,
                             //dNombreCliente = (c.Cliente.dNomCliente != "") ? c.Cliente.dNomCliente + " " + c.Cliente.dApeRazonCliente : c.Cliente.dApeRazonCliente,
                             //cEjecutivo = c.Ejecutivo.cEjecutivo,
                             //dNombreEjecutivo = c.Ejecutivo.dNombre + " " + c.Ejecutivo.dApellido,
                             //cRamo = c.Ramo.cRamo,
                             //dRamo = c.Ramo.dRamo,
                             //cEstadoCot = c.EstadoCotizacion.cEstadoCot,
                             //dEstadoCot = c.EstadoCotizacion.dEstadoCot
                         };
            return lQuery.ToList();
        }



   
        public string registrarRecepcionDocumento(RecepcionDocumentoWs _RecepcionDocumentoWs)
        {
            string _msgReg = "";

            RecepcionDocumentoBl obj = new RecepcionDocumentoBl();
            RecepcionDocumentoBe _objCab = new RecepcionDocumentoBe();
            _objCab.cRecepcionDocumento = _RecepcionDocumentoWs.cRecepcionDocumento;
            _objCab.Documento = new DocumentoBe();
            _objCab.Documento.cDocumento = _RecepcionDocumentoWs.cDocumento;
            _objCab.nDocumento = _RecepcionDocumentoWs.nDocumento;
            _objCab.Aseguradora = new AseguradoraBe();
            _objCab.Aseguradora.cAseguradora = _RecepcionDocumentoWs.cAseguradora;
            _objCab.Cliente = new ClienteBe();
            _objCab.Cliente.cCliente = _RecepcionDocumentoWs.cCliente;
            _objCab.dObservacion = _RecepcionDocumentoWs.dObservacion;

            _msgReg = obj.registrarRecepcionDocumento(_objCab);
            return _msgReg;
        }


    }
}
